#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QDebug>
#include <QString>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* button = new QPushButton(this);
    button->setText("按钮1");
    connect(button,&QPushButton::clicked,this,&Widget::handlerButton);
    // 自定义信号&自定义槽函数进行关联
    //connect(this,&Widget::mysigal,this,&Widget::handlerMySigal);
    connect(this,&Widget::mysigal,this,[=](const QString& text){
        qDebug() << "lambda 信号槽";
        this->setWindowTitle(text);
        // 因为这是回调函数，调用时机不确定，当进行&捕获时
        // 当信号产生，此时构造函数已经调用完，此时的button已经被释放了！只能[=]
        button->setText("lambda");
    });

}

void Widget::handlerButton()
{
    // 发送信号
    emit mysigal("设置标题1",1);

}

void Widget::on_pushButton_clicked()
{
    emit mysigal("设置标题2",2);
}

void Widget::handlerMySigal(const QString& text)
{
    this->setWindowTitle(text);
}

Widget::~Widget()
{
    delete ui;
}
